SandraCMS is an API-first content and site engine. Everything — the editing interface, the console, an AI agent — goes through one validated write path, so there is no privileged way in and nothing that can bypass the rules.
A theme is declarative data — JSON and Liquid, validated on install. It defines the blocks, their fields and their markup. Nothing in a theme ever runs as code.
Every block type publishes a schema, and the editing interface builds its forms from it. Add a block type to a theme and the editor knows about it, with no change anywhere else.
The same API, the same validation, the same change log. An agent introspects the content types and writes against them, and gets told precisely why when something is refused.
Writing a theme with an AI agent? Point it at the guide as Markdown — it is the whole format in one document — and at the example theme, which is a complete working one in five block types:
https://sandracms.com/docs/themes?format=md
https://sandracms.com/starter-theme.zip
Then GET https://sandracms.com/v1/capabilities for the field types,
roles and collection profiles it can use.
The package format, the field vocabulary, what a template can see, and how installing and switching behave. There is no build step.
Sites, API keys, themes, media, version history and publishing.
What this engine can currently do, reported by the engine itself. Unbuilt things say so rather than failing oddly later.